﻿using MotorLibrary.Model;
using MotorLibrary.Repository.DTO;
using System;

namespace MotorLibrary.Repository.Converter
{
    public class EndpointConverter: IEndpointConverter
    {
        private ITipoConverter _tipoConverter;
        public EndpointConverter(ITipoConverter tipoConverter)
        {
            this._tipoConverter = tipoConverter;
        }

        public Endpoint DtoToEntity(EndpointDTO dto)
        {
            Endpoint resultado;

            if (dto == null)
            {
                resultado = null;
            }
            else
            {
                resultado = new Endpoint();

                resultado.ID = dto.ID;
                resultado.TipoID = dto.TipoID;
                resultado.Nombre = dto.Nombre;
                resultado.Ruta = dto.Ruta;
                resultado.Procesar = dto.Procesar;
                resultado.Borrado = dto.Borrado;
                resultado.Tipo = _tipoConverter.DtoToEntity(dto.Tipo);
            }

            return resultado;
        }

        public EndpointDTO EntityToDto(Endpoint entity)
        {
            EndpointDTO resultado;

            if (entity == null)
            {
                resultado = null;
            }
            else
            {
                resultado = new EndpointDTO();

                resultado.ID = entity.ID;
                resultado.TipoID = entity.TipoID;
                resultado.Nombre = entity.Nombre;
                resultado.Ruta = entity.Ruta;
                resultado.Procesar = entity.Procesar;
                resultado.Borrado = entity.Borrado;
                resultado.Tipo = _tipoConverter.EntityToDto(entity.Tipo);
            }

            return resultado;
        }
    }
}
